﻿Write-Host "功能：将所有文件夹下的文件序列化重命名"
Read-Host "按 Enter 键开始"

# 记录开始时间
$startTime = Get-Date

# 初始化总文件计数
$totalCount = 0

# 遍历当前目录下的所有文件夹
Get-ChildItem -Directory | ForEach-Object {
    $folder = $_.FullName

    # 获取文件夹下的所有文件
    $files = Get-ChildItem -Path $folder -File
    $count = 0

    foreach ($file in $files) {
        $count++
        $totalCount++

        # 生成序列号（3位，不足补零）
        $num = $count.ToString("D3")

        # 获取文件扩展名
        $ext = $file.Extension

        # 生成新的文件名
        $newName = "$num$ext"

        # 避免重命名导致死循环
        if ($file.Name -ne $newName) {
            Rename-Item -Path $file.FullName -NewName $newName
        }
    }

    Write-Host "文件夹 $($_.Name) 处理文件数：$count"
}

# 记录结束时间并计算耗时（秒）
$endTime = Get-Date
$elapsed = ($endTime - $startTime).TotalSeconds

Write-Host "处理完成，总计处理文件数：$totalCount（耗时 $([math]::Round($elapsed, 3)) 秒）"
Read-Host "按 Enter 键关闭"